import axios from 'axios'
import {loadUserId} from './storage'

// 登录接口
export function getLogin (phone, word) {
  const url = `http://localhost:3000/login/cellphone?phone=${phone}&password=${word}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌单分类
export function getCatList () {
  const url = `http://localhost:3000/playlist/catlist`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 用户歌单
export function getPlayList () {
  const url = `http://localhost:3000/user/playlist?uid=${loadUserId()}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 发送私信(报301错)
export function sendText (text) {
  const url = `http://localhost:3000/send/text?user_ids=${loadUserId()}&msg=${text}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 用户关注列表
export function getFollows () {
  const url = `http://localhost:3000/user/follows?uid=${loadUserId()}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 用户播放记录
export function getRecord () {
  const url = `http://localhost:3000/user/record?uid=${loadUserId()}&type=1`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌手分类列表
export function getSingerIn () {
  // 5001:表示入驻歌手
  const url = `http://localhost:3000/artist/list?cat=5001`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

export function getMaleSinger () {
  // 1001:表示华语男歌手
  const url = `http://localhost:3000/artist/list?cat=1001`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

export function getfemaleSinger () {
  // 1002:表示华语女歌手
  const url = `http://localhost:3000/artist/list?cat=1002`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

export function getBand () {
  // 1003:表示华语乐队/组合
  const url = `http://localhost:3000/artist/list?cat=1003`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌单（网友精选碟）
export function getUserList () {
  const url = `http://localhost:3000/top/playlist`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌单详情
export function getSongDetail (id) {
  const url = `http://localhost:3000/playlist/detail?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 获取音乐网址
export function getSongUrl (id) {
  const url = `http://localhost:3000/song/url?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌曲搜索接口
export function searchKeyWords (text) {
  // 此接口只显示歌曲及歌手
  // const url = `http://localhost:3000/search?keywords= ${text}`
  // 此接口显示单曲，歌手，歌单，mv信息
  const url = `http://localhost:3000/search/suggest?keywords= ${text}&type=1004`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌词获取接口
export function songLyric (id) {
  const url = `http://localhost:3000/lyric?id= ${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌曲评论接口
export function songComment (id) {
  const url = `http://localhost:3000/comment/music?id=${id}&limit=1`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 给评论点赞(接口301)
// sId: 歌曲id  cId: 评论id t: 1为点赞  0为取消点赞 type：0表示歌曲的评论
export function likeComemt (sId, cId, t) {
  const url = `http://localhost:3000/comment/like?id=${sId}&cid=${cId}&t=${t}&type=0`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 图片轮播
export function getBanner () {
  const url = `http://localhost:3000/banner`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌手单曲
export function getArtists (id) {
  const url = `http://localhost:3000/artists?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 获取歌手MV
export function getSingerMV (id) {
  const url = `http://localhost:3000/artist/mv?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌手专辑
export function getAlbum (id) {
  const url = `http://localhost:3000/artist/album?id=${id}&limit=30`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 歌手描述
export function getSingerDesc (id) {
  const url = `http://localhost:3000/artist/desc?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 相似歌手（301错误提示）
export function similarSinger (id) {
  const url = `http://localhost:3000/simi/artist?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 新碟上架
export function newAlbum () {
  const url = `http://localhost:3000/top/album?offset=0&limit=30`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 热门歌手
export function hotSinger () {
  const url = `http://localhost:3000/top/artists?offset=0&limit=30`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 最新mv
export function newMVs () {
  const url = `http://localhost:3000/mv/first?limit=10`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 推荐mv
export function recommendMV () {
  const url = `http://localhost:3000/personalized/mv`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 推荐歌单
export function recommendSong () {
  const url = `http://localhost:3000/personalized`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 推荐新歌
export function reNewSong () {
  const url = `http://localhost:3000/personalized/newsong`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 推荐电台
export function radioStation () {
  const url = `http://localhost:3000/personalized/djprogram`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 推荐节目
export function reProgram () {
  const url = `http://localhost:3000/program/recommend`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 独家放送
export function getSole () {
  const url = `http://localhost:3000/personalized/privatecontent`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// mv排行
export function mvTop () {
  const url = `http://localhost:3000/top/mv?limit=10`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 获取mv数据
export function getMvData (id) {
  const url = `http://localhost:3000/mv/detail?mvid=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// mv地址(单条mv数据的链接)
export function mvAddress (id) {
  const url = `http://localhost:3000/mv/url?id=${id}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 排行榜
export function rankingList (key) {
  const url = `http://localhost:3000/top/list?idx=${key}`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}

// 所有榜
export function topList () {
  const url = `http://localhost:3000/toplist`
  return axios({
    method: 'GET',
    url: url
  }).then((res) => {
    return Promise.resolve(res.data)
  }).catch((err) => {
    return Promise.reject(err)
  })
}
